﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using static Company.Hardware.Ice_ipc.ipcsdk;

namespace Company.Hardware
{
    /// <summary>
    /// Ice_ipc车牌识别网络摄像头
    /// </summary>
    public interface ICameraIce
    {
        event Action<string> MessageChanged;

        event Action<string> ValueChanged;

        bool Initialized { get; set; }

        bool Connected { get; set; }

        string Message { get; set; }

        string Value { get; set; }

        /**
        *  @brief  连接相机并接入视频（推荐使用）
        *  @param  [IN] pcIP          相机ip
        *  @param  [IN] u8OverTCP     是否使用tcp模式（1：使用tcp 0：不使用tcp，使用udp）    
        *  @param  [IN] u8MainStream  是否请求主码流（1：主码流 0：子码流） 
        *  @param  [IN] hWnd          预览视频的窗口句柄
        *  @param  [IN] pfOnPlate     车牌识别数据通过该回调获得
        *  @param  [IN] pvPlateParam  车牌回调参数，能区分开不同的使用者即可
        *  @return sdk句柄(连接不成功时，返回值为null）
        */
        bool OpenPreview(string pcIP, byte u8OverTCP, byte u8MainStream, uint hWnd, ICE_IPCSDK_OnPlate pfOnPlate, System.IntPtr pvPlateParam);

        void Open();

        void Close();

        void Trigger(string carName);

    }
}
